import { def } from './utils.js'

const arrayPrototype = Array.prototype;
// 创建一个原型为Array.prototype的对象
export const arrMethods = Object.create(arrayPrototype)
// 需要被改写的方法
const rewirteArrayMethods = [
  'push',
  'unshift',
  'pop',
  'shift',
  'sort',
  'splice',
  'reverse'
]

rewirteArrayMethods.forEach(methodsName => {
  // 引用Array.prototype对应方法
  const original = arrayPrototype[methodsName]
  def(arrMethods, methodsName, function() {
    console.log('我是新方法')
    original.apply(this, arguments)
  }, false)
})
